// 会员相关的所有接口
const express = require('express');
const MemberLevel = require('../models/memberLevel');
const MemberInfo = require('../models/meberInfo');
const Expenses = require('../models/expense');
const router = new express.Router();
// 会员录入表
// 分析  得到前台req.body中的对象   编号 level_id、会员等级 member_level、充值金额money、消费折扣 discount   存储到数据库 连接数据库 建立模型对象其中包括约束条件  create存到数据库  
router.post('/member', async (req, res) => {
    console.log(req.body);
    await MemberLevel.create(req.body);
    res.send('会员等级录入成功！！');

});
// 会员等级查询表
router.get('/member_level_search', async (req, res) => {
    const result = await MemberLevel.find({}, {
        _id: 0,
        __v: 0
    });
    res.send(result);
})
// 会员信息录入表
router.post('/member_info', async (req, res) => {
    console.log(req.body);
    await MemberInfo.create(req.body);
    res.send('会员信息录入成功！');
})
// 会员信息更新 主要是money更新，用于充值按钮  更新money和remaining_sum（余额字段）
router.post('/member_info_update', async (req, res) => {
    await MemberInfo.updateOne({
        member_id: req.body.member_id
    }, {
        $set: {
            money: req.body.money,
            remaining_sum: req.body.remaining_sum
        }
    });
    res.send('充值成功！！');
})
// 会员信息查询表
router.get('/member_search', async (req, res) => {
    const result = await MemberInfo.find(req.query, {
        _id: 0,
        __v: 0
    });
    res.send(result);
})

// 会员消费记录表
/* 
编号  expense_id
会员id   member_id
消费项目 detail
时间  date
工号  employee_id
折扣  discount
应收  yingshou
实收  shishou

*/
router.post('/expense', async (req, res) => {
    // 将数据存到消费记录表中
    await Expenses.create(req.body);
    res.send('存储成功！！');
})
//查询消费记录  会员信息表以及消费记录表中的数据
router.get('/expense_search', async (req, res) => {
    const result = await Expenses.aggregate([{
        $lookup: {
            from: 'memberinfos',
            localField: 'member_id',
            foreignField: 'member_id',
            as: 'expense_list'
        }

    }, {
        $match: {
            member_id: req.query.member_id
        }
    }])
    res.send(result);
})

module.exports = router